{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline\n",
    "import matplotlib.pyplot as plt\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import numpy.random as rng\n",
    "import pandas_datareader.data as web\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def get_prices(symbol):\n",
    "    start, end = '2007-05-02', '2016-04-11'\n",
    "    data = web.DataReader(symbol, 'google', start, end)\n",
    "    data=pd.DataFrame(data)\n",
    "    prices=data['Close']\n",
    "    #prices=np.asarray(list(prices))\n",
    "    prices=prices.astype(float)\n",
    "    return prices\n",
    "\n",
    "def get_returns(prices):\n",
    "    return (prices-prices.shift(-1))/prices\n",
    "\n",
    "def sort_data(rets):\n",
    "    ins = []\n",
    "    outs = []\n",
    "    for i in range(len(rets)-100):\n",
    "        ins.append(rets[i:i+100].tolist())\n",
    "        outs.append(rets[i+100])\n",
    "    return np.array(ins), np.array(outs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# separate data into inputs and outputs for training and testing\n",
    "gs = get_prices('GS')\n",
    "rets = get_returns(gs)\n",
    "ins, outs = sort_data(rets)\n",
    "div = int(.8 * ins.shape[0])\n",
    "train_ins, train_outs = ins[:div], outs[:div]\n",
    "test_ins, test_outs = ins[div:], outs[div:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[-0.01878741 -0.00407213 -0.00961761 ..., -0.01028454  0.00316706\n",
      "   0.00487916]\n",
      " [-0.00407213 -0.00961761  0.00430391 ...,  0.00316706  0.00487916\n",
      "  -0.00313569]\n",
      " [-0.00961761  0.00430391  0.02086335 ...,  0.00487916 -0.00313569\n",
      "   0.00233021]\n",
      " ..., \n",
      " [ 0.02340544  0.01234632 -0.00929671 ...,  0.01533878  0.00102993\n",
      "   0.03080095]\n",
      " [ 0.01234632 -0.00929671  0.00827435 ...,  0.00102993  0.03080095\n",
      "   0.0008643 ]\n",
      " [-0.00929671  0.00827435 -0.01621451 ...,  0.03080095  0.0008643\n",
      "  -0.01277615]]\n"
     ]
    }
   ],
   "source": [
    "print(test_ins)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "sess = tf.InteractiveSession()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# we define two placeholders for our input and output\n",
    "x = tf.placeholder(tf.float32, [None, 100])\n",
    "y_ = tf.placeholder(tf.float32, [None, 1])\n",
    "\n",
    "# we define trainable variables for our model\n",
    "W = tf.Variable(tf.random_normal([100, 1]))\n",
    "b = tf.Variable(tf.random_normal([1]))\n",
    "\n",
    "# we define our model: y = W*x + b\n",
    "y = tf.matmul(x, W) + b\n",
    "\n",
    "#MSE:\n",
    "cost = tf.reduce_sum(tf.pow(y-y_, 2))/(2*1000)\n",
    "optimizer = tf.train.GradientDescentOptimizer(0.5).minimize(cost)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 1000 cost= 0.014585411\n",
      "Epoch: 2000 cost= 0.004562563\n",
      "Epoch: 3000 cost= 0.001888341\n",
      "Epoch: 4000 cost= 0.001065421\n",
      "Epoch: 5000 cost= 0.000789276\n",
      "Epoch: 6000 cost= 0.000691074\n",
      "Epoch: 7000 cost= 0.000654672\n",
      "Epoch: 8000 cost= 0.000640742\n",
      "Epoch: 9000 cost= 0.000635271\n",
      "Epoch: 10000 cost= 0.000633075\n",
      "Epoch: 11000 cost= 0.000632177\n",
      "Epoch: 12000 cost= 0.000631803\n",
      "Epoch: 13000 cost= 0.000631645\n",
      "Epoch: 14000 cost= 0.000631578\n",
      "Epoch: 15000 cost= 0.000631548\n",
      "Epoch: 16000 cost= 0.000631535\n",
      "Epoch: 17000 cost= 0.000631530\n",
      "Epoch: 18000 cost= 0.000631527\n",
      "Epoch: 19000 cost= 0.000631526\n",
      "Epoch: 20000 cost= 0.000631526\n"
     ]
    }
   ],
   "source": [
    "# initialize variables to random values\n",
    "init = tf.global_variables_initializer()\n",
    "sess.run(init)\n",
    "# run optimizer on entire training data set many times\n",
    "for epoch in range(20000):\n",
    "    sess.run(optimizer, feed_dict={x: train_ins, y_: train_outs.reshape(1,-1).T})\n",
    "    # every 1000 iterations record progress\n",
    "    if (epoch+1)%1000== 0:\n",
    "        c = sess.run(cost, feed_dict={x: train_ins, y_: train_outs.reshape(1,-1).T})\n",
    "        print(\"Epoch:\", '%04d' % (epoch+1), \"cost=\", \"{:.9f}\".format(c))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x115a74a20>]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x108011be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#train results :)\n",
    "predict = y\n",
    "p = sess.run(predict, feed_dict={x: train_ins})\n",
    "position = 2*((p>0)-.5)\n",
    "returns= position.reshape(-1) * train_outs\n",
    "plot(np.cumprod(returns+1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x115c17710>]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1159fc828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#test results :(\n",
    "predict = y\n",
    "p = sess.run(predict, feed_dict={x: test_ins})\n",
    "position = 2*((p>0)-.5)\n",
    "returns= position.reshape(-1) * test_outs\n",
    "plot(np.cumprod(returns+1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
